People are increasingly interacting with computers and other electronic devices in new and interesting ways. One such interaction approach involves making a detectable motion with respect to a device, which can be detected using a camera or other such element. While image recognition can be used with existing cameras to determine various types of motion, the amount of processing needed to analyze full color, high resolution images is generally very high. This can be particularly problematic for portable devices that might have limited processing capability and/or limited battery life, which can be significantly drained by intensive image processing. Some devices utilize basic gesture detectors, but these detectors typically are very limited in capacity and only are able to detect simple motions such as up-and-down, right-or-left, and in-and-out. These detectors are not able to handle more complex gestures, such as holding up a certain number of fingers or pinching two fingers together.
Further, cameras in many portable devices such as cell phones often have what is referred to as a “rolling shutter” effect. Each pixel of the camera sensor accumulates charge until it is read, with each pixel being read in sequence. Because the pixels provide information captured and read at different times, as well as the length of the charge times, such cameras provide poor results in the presence of motion. A motion such as waiving a hand or a moving of one or more fingers will generally appear as a blur in the captured image, such that the actual motion cannot accurately be determined.